package tree;


public class TwoTree {

    /**
     * 前序遍历的递归实现与非递归实现
     * 前序遍历首先访问根节点 然后遍历左子树，最后遍历右子树。
     * 在遍历左右子树时，仍然先访问根结点，然后遍历左子树，最后遍历右子树。
     * 若二叉树为空则结束返回否则
     * （1）访问根结点
     * （2)前序遍历左子树
     * （3）前序遍历右子树
     */
    public static void main(String[] args) {
        //以数组形式生成一颗完全二叉树
        TreeNode[] node = new TreeNode[10];
        //比如有10个结点
        for (int i = 0; i < 10; i++) {
            node[i] = new TreeNode(i);//对结点实例化

            if (2 * i + 1 < 10) {
                node[i].left = node[2 * i + 1];
            }
            if (2 * i + 2 < 10) {
                node[i].right = node[2 * i + 2];
            }
        }
        preOrderRe(node[0]);
        System.out.println();

        String  s="1999999999";
        System.out.println(Integer.valueOf(s));
        String s2="2199999999";

        System.out.println(Integer.valueOf(s2));

    }

    static void preOrderRe(TreeNode root) {
        //递归实现
        System.out.println(root.value);
        if (root.left != null) {
            preOrderRe(root.left);
        }
        if (root.right != null) {
            preOrderRe(root.right);
        }
    }


}

class TreeNode {
    int value;
    TreeNode left;
    TreeNode right;

    TreeNode(int value) {
        this.value = value;
    }
}
